]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st: Clean up scroll event code
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 19 Mar 2012 23:19:08 +0000 (00:19 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 24 Apr 2012 18:45:01 +0000 (20:45 +0200)
Currently the scroll event code only handles scroll events if the
adjustment's value is within the "lower" and "upper" limits. The
likely intent was to pass events to a parent scroll view when
reaching the bounds (uh, nested scroll views!), but apparently
we never made use of this, as the upper bound is actually wrong
(an adjustment's maximum value is upper - page_size, not upper).
Just handle all scroll events unconditionally and rely on the
bound checks in StAdjustment.

https://bugzilla.gnome.org/show_bug.cgi?id=672413

src/st/st-scroll-bar.c
src/st/st-scroll-view.c

index b8f4f7289ab2aa8af4d694242cd6c47ef05e61d0..8353109b0301b9371f106994d56c0c53b73a8447 100644 (file)
@@ -444,14 +444,12 @@ st_scroll_bar_scroll_event (ClutterActor       *actor,
                             ClutterScrollEvent *event)
 {
   StScrollBarPrivate *priv = ST_SCROLL_BAR (actor)->priv;
-  gdouble lower, step, upper, value, delta_x, delta_y;
+  gdouble step, value, delta_x, delta_y;
 
   if (priv->adjustment)
     {
       g_object_get (priv->adjustment,
-                    "lower", &lower,
                     "step-increment", &step,
-                    "upper", &upper,
                     "value", &value,
                     NULL);
     }
@@ -472,17 +470,11 @@ st_scroll_bar_scroll_event (ClutterActor       *actor,
       break;
     case CLUTTER_SCROLL_UP:
     case CLUTTER_SCROLL_LEFT:
-      if (value == lower)
-        return FALSE;
-      else
-        st_adjustment_set_value (priv->adjustment, value - step);
+      st_adjustment_set_value (priv->adjustment, value - step);
       break;
     case CLUTTER_SCROLL_DOWN:
     case CLUTTER_SCROLL_RIGHT:
-      if (value == upper)
-        return FALSE;
-      else
-        st_adjustment_set_value (priv->adjustment, value + step);
+      st_adjustment_set_value (priv->adjustment, value + step);
       break;
     }
 
index 4ff7918e3df9d7febdfb1b6458a1ba18df684ded..c8f89ceee23d9608cd90fb63922be0b6073b23ce 100644 (file)
@@ -687,7 +687,7 @@ st_scroll_view_scroll_event (ClutterActor       *self,
                              ClutterScrollEvent *event)
 {
   StScrollViewPrivate *priv = ST_SCROLL_VIEW (self)->priv;
-  gdouble lower, value, upper, step, hvalue, vvalue, delta_x, delta_y;
+  gdouble value, step, hvalue, vvalue, delta_x, delta_y;
 
   /* don't handle scroll events if requested not to */
   if (!priv->mouse_scroll)
@@ -708,19 +708,15 @@ st_scroll_view_scroll_event (ClutterActor       *self,
     case CLUTTER_SCROLL_UP:
     case CLUTTER_SCROLL_DOWN:
       g_object_get (priv->vadjustment,
-                    "lower", &lower,
                     "step-increment", &step,
                     "value", &value,
-                    "upper", &upper,
                     NULL);
       break;
     case CLUTTER_SCROLL_LEFT:
     case CLUTTER_SCROLL_RIGHT:
       g_object_get (priv->hadjustment,
-                    "lower", &lower,
                     "step-increment", &step,
                     "value", &value,
-                    "upper", &upper,
                     NULL);
       break;
     }
@@ -732,28 +728,16 @@ st_scroll_view_scroll_event (ClutterActor       *self,
       st_adjustment_set_value (priv->vadjustment, vvalue + delta_y);
       break;
     case CLUTTER_SCROLL_UP:
-      if (value == lower)
-        return FALSE;
-      else
-        st_adjustment_set_value (priv->vadjustment, value - step);
+      st_adjustment_set_value (priv->vadjustment, value - step);
       break;
     case CLUTTER_SCROLL_DOWN:
-      if (value == upper)
-        return FALSE;
-      else
-        st_adjustment_set_value (priv->vadjustment, value + step);
+      st_adjustment_set_value (priv->vadjustment, value + step);
       break;
     case CLUTTER_SCROLL_LEFT:
-      if (value == lower)
-        return FALSE;
-      else
-        st_adjustment_set_value (priv->hadjustment, value - step);
+      st_adjustment_set_value (priv->hadjustment, value - step);
       break;
     case CLUTTER_SCROLL_RIGHT:
-      if (value == upper)
-        return FALSE;
-      else
-        st_adjustment_set_value (priv->hadjustment, value + step);
+      st_adjustment_set_value (priv->hadjustment, value + step);
       break;
     }